package com.yanggu.scala.chapater07.extend

object Student100Demo {

  def main(args: Array[String]): Unit = {
    val student10 = new Student100("张三")
    println(student10)
  }

}

//如果类之间存在继承关系那么在声明子类时必须要给父类的主构造器传值
//可以简单地理解为子类主构造器必须显示调用父类的主构造器
//不存在super(...)调用父类的构造器
class Student100(studentName: String) extends Person100(studentName) {

  println(s"Student100住构造器被调用了。。。。传入的参数$studentName")

  def this(age: Int, className: String, studentName: String) {
    //不存在super(...)调用父类的构造器
    //super(studentName)
    this(studentName)
    println(s"辅助构造器被调用了, age: $age, 班级名称: $className, 学生姓名: $studentName")
  }

  override def toString: String = {
    s"学生姓名是: $studentName"
  }

}

class Person100(name: String) {

  println(s"Person100主构造被调用了。。。。传入的参数: $name")

}
